IIS এবং Kestrel Server ব্যবহার

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core) ডিপ্লয়মেন্ট এবং হোস্টিং (Deployment and Hosting) |
225
225

ASP.NET Core অ্যাপ্লিকেশন চালানোর জন্য দুটি জনপ্রিয় সার্ভার ব্যবহৃত হয়: IIS (Internet Information Services) এবং Kestrel। এই দুটি সার্ভার ব্যবহৃত হয় তাদের নিজস্ব বৈশিষ্ট্য, পারফরম্যান্স এবং ব্যবহারের পরিস্থিতির উপর ভিত্তি করে। ASP.NET Core অ্যাপ্লিকেশন দুটি সার্ভারেই চালানো যেতে পারে, তবে সাধারণত তাদের ব্যবহারের ধরন এবং স্থাপনার পদ্ধতি আলাদা। নিচে IIS এবং Kestrel সার্ভারের মধ্যে পার্থক্য এবং কীভাবে এগুলি ব্যবহার করা যায় তা বর্ণনা করা হয়েছে।


Kestrel Server

Kestrel হলো ASP.NET Core এর জন্য একটি উচ্চ পারফরম্যান্স, লাইটওয়েট ওয়েব সার্ভার যা মূলত ক্রস-প্ল্যাটফর্ম সমর্থন করে। এটি ASP.NET Core অ্যাপ্লিকেশন চালানোর জন্য ডিফল্ট সার্ভার হিসেবে ব্যবহৃত হয় এবং এটি HTTP/1.x, HTTP/2 প্রটোকল সমর্থন করে।

Kestrel এর বৈশিষ্ট্য

  • হালকা ও দ্রুত: Kestrel একটি লাইটওয়েট, দ্রুত সার্ভার, যা ছোট অ্যাপ্লিকেশন থেকে শুরু করে উচ্চ ট্রাফিক অ্যাপ্লিকেশন পর্যন্ত পরিচালনা করতে সক্ষম।
  • ক্রস-প্ল্যাটফর্ম: এটি Windows, macOS, এবং Linux-এ সমর্থিত।
  • উচ্চ পারফরম্যান্স: এটি হাই-থ্রুপুট এবং লো-ল্যাটেন্সি অ্যাপ্লিকেশন চালানোর জন্য ডিজাইন করা হয়েছে।
  • স্ট্যান্ড-অ্যালোন: Kestrel-কে একা সার্ভার হিসেবে ব্যবহৃত করা সম্ভব, তবে প্রায়ই এটি reverse proxy সার্ভার হিসেবে IIS বা Nginx-এর সাথে কাজ করে।

Kestrel ব্যবহার

ASP.NET Core অ্যাপ্লিকেশন যদি Kestrel সার্ভারে চলবে, তবে সেটি ডিফল্টভাবে Program.cs ফাইলে কনফিগার করা হয়। নিচে একটি উদাহরণ দেওয়া হলো:

Program.cs:

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseKestrel()
                          .UseStartup<Startup>();
            });
}

এখানে UseKestrel() মেথড ব্যবহার করে Kestrel সার্ভার চালানোর জন্য কনফিগার করা হয়েছে।

Kestrel এর সীমাবদ্ধতা

  • নিরাপত্তা: Kestrel সার্ভার প্রকৃতপক্ষে পোর্ট ফোয়ার্ডিং, SSL সেকিউরিটি এবং লোড ব্যালেন্সিং ইত্যাদি প্রয়োজনীয় নিরাপত্তা ফিচার সরবরাহ করে না, তবে এই সুবিধাগুলি reverse proxy সার্ভার (যেমন IIS, Nginx) দ্বারা ব্যবহৃত হয়।
  • স্কেলিং: বড় এবং উৎপাদন পরিবেশে অ্যাপ্লিকেশনটি কেবল Kestrel সার্ভারের সাথে একা চালানো সঠিক নাও হতে পারে, তবে IIS বা অন্য সার্ভারের সাথে মিলিয়ে ব্যবহার করা যেতে পারে।

IIS (Internet Information Services)

IIS হলো Windows-ভিত্তিক একটি ফিচার-প্যাকড ওয়েব সার্ভার, যা ASP.NET Core অ্যাপ্লিকেশন চালানোর জন্য একটি জনপ্রিয় পছন্দ। IIS উচ্চ স্তরের সিকিউরিটি, স্কেলিং এবং রিভার্স প্রক্সি হিসেবে কাজ করে, এবং এটি ডোমেইন-ভিত্তিক অ্যাপ্লিকেশন ডেলিভারি এবং কনফিগারেশনের জন্য উপযুক্ত।

IIS এর বৈশিষ্ট্য

  • Windows-specific: IIS একটি Windows-ভিত্তিক সার্ভার, যা Windows সার্ভারে চলে।
  • রিভার্স প্রক্সি: IIS-কে সাধারণত Kestrel সার্ভারের সাথে রিভার্স প্রক্সি হিসেবে ব্যবহৃত করা হয়। এই কনফিগারেশনের মাধ্যমে IIS প্রাথমিক HTTP রিকোয়েস্ট গ্রহণ করে এবং তারপরে Kestrel সার্ভারে পাঠায়।
  • প্রোডাকশন ফিচার: IIS তে বিভিন্ন ধরনের ফিচার রয়েছে যেমন, লোড ব্যালেন্সিং, সার্ভার সাইড কেচিং, SSL সাপোর্ট, এবং ডোমেইন ব্যবস্থাপনা।

IIS এবং Kestrel এর সাথে ব্যবহৃত কনফিগারেশন

IIS সাধারণত Kestrel-এর সামনে একটি reverse proxy হিসেবে কাজ করে, যেখানে IIS সার্ভার ক্লায়েন্টের রিকোয়েস্ট গ্রহণ করে এবং Kestrel সার্ভারে পাঠায়।

ASP.NET Core অ্যাপ্লিকেশন IIS-এ চালানোর জন্য, web.config ফাইল কনফিগার করতে হয়:

web.config ফাইল (IIS reverse proxy):

<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\YourApp.dll" stdoutLogEnabled="false" />
  </system.webServer>
</configuration>

এখানে AspNetCoreModuleV2 হল IIS-এর জন্য ASP.NET Core অ্যাপ্লিকেশন চালানোর জন্য একটি মডিউল, যা Kestrel সার্ভারে ক্লায়েন্টের রিকোয়েস্ট পাস করতে সাহায্য করে।

IIS ব্যবহার করার সুবিধা

  • নিরাপত্তা: IIS-এ SSL, অ্যাকসেস কন্ট্রোল, এবং ফায়ারওয়াল সেটিংস ইত্যাদি ভালভাবে কনফিগার করা যায়।
  • ইন্টিগ্রেশন: IIS Microsoft পরিবেশের সাথে খুব ভালভাবে ইন্টিগ্রেটেড, এবং এটিতে Windows-ভিত্তিক সার্ভিস এবং অ্যাপ্লিকেশন সহজে চালানো যায়।
  • স্কেলিং এবং সেন্ট্রালাইজড ম্যানেজমেন্ট: IIS অ্যাপ্লিকেশনগুলি স্কেলিং এবং সেন্ট্রালাইজড ম্যানেজমেন্ট প্রদান করতে সক্ষম।

IIS এর সীমাবদ্ধতা

  • Windows Only: IIS শুধুমাত্র Windows সার্ভারে কাজ করে, তাই এটি ক্রস-প্ল্যাটফর্ম অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য উপযুক্ত নয়।
  • বড় পরিবেশে ভারী: IIS খুব বেশি রিসোর্স ব্যবহার করতে পারে, বিশেষ করে উচ্চ ট্রাফিক অ্যাপ্লিকেশন পরিচালনা করার সময়।

IIS এবং Kestrel এর মধ্যে পার্থক্য

বৈশিষ্ট্যKestrelIIS
প্ল্যাটফর্মক্রস-প্ল্যাটফর্ম (Windows, macOS, Linux)শুধুমাত্র Windows
পারফরম্যান্সহালকা ও দ্রুতউচ্চ পারফরম্যান্স, তবে ভারী হতে পারে
নিরাপত্তাসার্ভারের প্রাথমিক নিরাপত্তা নেইউন্নত নিরাপত্তা, যেমন SSL, অ্যাক্সেস কন্ট্রোল
স্কেলিংস্কেলিং সাপোর্ট থাকতে পারে, তবে নির্দিষ্ট নয়স্কেলিং এবং লোড ব্যালেন্সিং সহজে করা যায়
কনফিগারেশনসহজ এবং কাস্টমাইজযোগ্যকনফিগারেশন বেশি উন্নত এবং শক্তিশালী
রিভার্স প্রক্সিসাধারণত সরাসরি একা ব্যবহৃত হয়Kestrel এর সাথে রিভার্স প্রক্সি হিসেবে কাজ করে

সারাংশ

  • Kestrel একটি দ্রুত, লাইটওয়েট এবং ক্রস-প্ল্যাটফর্ম সার্ভার, যা ASP.NET Core অ্যাপ্লিকেশন চালানোর জন্য আদর্শ। এটি একক সার্ভার হিসেবে ব্যবহৃত হতে পারে তবে নিরাপত্তা এবং স্কেলিংয়ের জন্য অন্যান্য সার্ভার (যেমন IIS বা Nginx) এর সাথে ব্যবহৃত হয়।
  • IIS একটি পূর্ণাঙ্গ Windows-ভিত্তিক সার্ভার যা ASP.NET Core অ্যাপ্লিকেশনগুলো কনফিগার এবং স্কেল করতে সহায়ক, তবে এটি শুধুমাত্র Windows প্ল্যাটফর্মে ব্যবহৃত হয় এবং বেশি রিসোর্স ব্যবহার করতে পারে।

আপনি যদি ASP.NET Core অ্যাপ্লিকেশন তৈরি করেন তবে Kestrel এবং IIS এর পারফরম্যান্স এবং নিরাপত্তার মধ্যে সঠিক সমন্বয় বেছে নিতে হবে, নির্ভর করে আপনার অ্যাপ্লিকেশনের ধরন এবং পরিবেশের উপর।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion